//package keer.httpinterface.http;
//
//import java.io.InputStream;
//import java.io.OutputStream;
//
//public abstract class HttpContent<C> {
//    private C content;
//
////    public abstract HttpContentType contentType();
//
//    public abstract void write(OutputStream out);
//
//    protected abstract C read(InputStream input);
//
//    protected abstract C fromBytes(byte[] bytes);
//
//    protected void setContent(C content) {
//        this.content = content;
//    }
//
//    public C getContent() {
//        return content;
//    }
//
//    public static <C, T extends HttpContent<C>> T create(C content, Class<T> clazz) {
//        try {
//            T instance = clazz.newInstance();
//            instance.setContent(content);
//            return instance;
//        } catch (Exception e) {
//            throw new RuntimeException(e);
//        }
//    }
//
//    public static <C, T extends HttpContent<C>> T create(InputStream input, Class<T> clazz) {
//        try {
//            T instance = clazz.newInstance();
//            instance.read(input);
//            return instance;
//        } catch (Exception e) {
//            throw new RuntimeException(e);
//        }
//    }
//}
